<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

</body>

</html>
<script>
    // 1.数组的扁平化（将多维数组转换成一维数组）
    // toString()
    // var arr = [1, 2, 3, [4, 5, [6, 7], 8, [9, 10]]];
    // console.log(arr.toString().split(',').map(function(v) {
    //     return +v;
    // }));
    //[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

    // 2.数字字母混合验证码(数字+大写字母+小写字母) - 6位
    // 随机方法：Math.random()      
    // parseInt():转整数
    // toLowerCase():转小写

    // var arr = [];
    // for (var i = 48; i <= 57; i++) {
    //     arr.push(String.fromCharCode(i));
    // }
    // for (var i = 65; i <= 90; i++) {
    //     arr.push(String.fromCharCode(i));
    // }
    // console.log(arr);
    //随机获取数组中的值。
    //假设数组长度是36,需要随机产生的索引范围应该是0-35
    //规律：parseInt(Math.random()*arr.length)


    //随机产生的均分的规律
    //Math.random()>0.5
    // var str = '';
    // for (var i = 1; i <= 6; i++) {
    //     var num = parseInt(Math.random() * arr.length); //随机产生的索引 0-35
    //     if (num > 9) { //当前num>9，索引变成大写字母的索引。
    //         var bool = Math.random() > 0.5 ? true : false;
    //         if (bool) {
    //             str += arr[num].toLowerCase(); //将随机的大写字母转换成小写字母。
    //         } else {
    //             str += arr[num]; //大写字母
    //         }
    //     } else {
    //         str += arr[num]; //数字
    //     }
    // }
    // console.log(str);

    //3.已知字符串“aabbbccdeefffgghhhiiiiijjjjjjjjj”编程实现以下功能（字符串也是类数组）
    // 统计每个字符出现的次数，显示结果;
    // 去掉重复的字符，使结果显示 abcdefghij;

    var str = 'aabbbccdeefffgghhhiiiiijjjjjjjjj';
    var arr = str.split('');
    //["a", "a", "b", "b", "b", "c", "c", "d", "e", "e", "f", "f", "f", "g", "g", "h", "h", "h", "i", "i", "i", "i", "i", "j", "j", "j", "j", "j", "j", "j", "j", "j"]
    var newarr = [];
    var obj = {}; //新建一个对象。记录每个字符的个数。
    for (var i = 0; i < arr.length; i++) {
        var flag = 1;
        for (var j = 0; j < newarr.length; j++) {
            if (arr[i] === newarr[j]) { //去重的数组和新数组里面出现重复的值。
                obj[arr[i]]++; //满足条件，多次出现，每出现一次+1
                flag = 2;
            }
        }
        //当满足此条件，说明当前的
        if (flag === 1) {
            obj[arr[i]] = 1; //obj.a = 1
            newarr.push(arr[i]);
        }
    }
    console.log(arr);
    console.log(newarr.join('')); //abcdefghij
    console.log(obj);
</script>